package com.lightsh.list;

import android.content.Context;
import android.util.Log;
import android.widget.RelativeLayout;

public abstract class AbstractListItemView extends RelativeLayout {
	protected Context mContext;
	
	protected boolean mbSelected = false; 			//< 该item是否被选中
	protected int mIndex;								//< 记录该item的位置
	
	/**
	 * 如果该view可以选中，当用户选中时，需要调用该回调来通知对应的adapter来做数据更新
	 */
	protected OnItemSelectListener mItemSelectListener;
	public AbstractListItemView(Context context) {
		this(context, null);
	}
	public AbstractListItemView(Context context, OnItemSelectListener listener) {
		super(context);
		mItemSelectListener = listener;
		mContext = context;
		initView();
	}
	
	/**
	 * 初始化视图，在改方法中，需要inflate布局，并初始化所有的view。该方法已经在{@link AbstractListItemView}的构造函数调用
	 */
	public abstract void initView();
	/**
	 * 更新视图
	 * @param item 需要显示的数据
	 * @param position 该item所处的位置值
	 */
	public abstract void updateView(AbstractListItem item, int position);
	
	protected void notifySelectedChange(){
		if(mItemSelectListener != null){
			mItemSelectListener.onItemSelect(mIndex, mbSelected);
		}
	}
}
